15-745 Project report: An integer programming approach to optimal code scheduling on clustered architectures
نویسندگان
چکیده
This report describes what we believe to be the first attempt to apply integer programming to code scheduling for a clustered architecture. We give an integer linear program (ILP) for instruction scheduling on the Texas Instruments TMS C6X CPU family, which has constraints on the communication between its two clusters. Using CPLEX to solve the ILP, we show that our approach finds shorter schedules than a standard list scheduling approach in a reasonable amount of time. Introduction Code scheduling is the problem of scheduling machine-level instructions in a basic block so as to produce shorter schedules (and consequently shorter run times). Register allocation is the problem of assigning variables to registers in such a way so as to minimize the amount of non-register memory accesses required by the program. Both of these problems are NP-hard, and the literature is full of different approaches that have been tried. There is increasing interest in tackling both of these problems simultaneously to avoid phase-ordering problems. Of course the NP-hardness holds for the combined problem. Integer programming, in which a linear objective is optimized subject to linear constraints and integrality constraints on some of the variables, is a widely used approach for modeling difficult optimization problems [3]. Optimizing an integer program is in itself NP-hard, but recent research and development has led to the development of commercial software1 that is able to solve large, difficult integer programming instances with modest computational requirements. In many fields, researchers have been able to develop integer programming-based approaches for tackling a wide range of computationally intractable problems. The Texas Instruments TMS C6X CPU family, with its clustered architecture and predicated instruction support, provides unique opportunites and challenges to the compiler writer. In particular, the instruction-level parallelism that it offers can be exploited to greatly improve running times via better scheduling. However, because of the clustered architecture and the constraints under which different clusters can communicate with the register file of the opposite cluster, the scheduling depends heavily on the register allocation. Thus, for this architecture especially, a combined approach to the register allocation and code scheduling problems could have the greatest impact. In this project, we propose using an integer programming-based approach for solving the code scheduling and register allocation problems simultaneously. Our target platform will be the C6X processor. In solving integer programs, there are many different techniques that may be tried. Branching strategies, cutting planes, and problem formulation are all different techniques that can be specialized to a specific family of integer programs to improve performance. By utilizing some of these techniques, we plan to investigate (1) how well an integer programming approach can scale when both register allocation and code scheduling is considered, and (2) how well an integer programming approach can approximate an optimal solution when faced with limited computational resources. 1The most popular piece of commercial software for integer programming is CPLEX, produced by ILOG. This is the software we will use in our research.
منابع مشابه
The preemptive resource-constrained project scheduling problem subject to due dates and preemption penalties: An integer programming approach
Extensive research has been devoted to resource constrained project scheduling problem. However, little attention has been paid to problems where a certain time penalty must be incurred if activity preemption is allowed. In this paper, we consider the project scheduling problem of minimizing the total cost subject to resource constraints, earliness-tardiness penalties and preemption penalties, ...
متن کاملFinal report for Ceniit project 01.06 (2001–2007) Optimization Algorithms for Integrated Code Generation
In this project we developed integrative methods for generating high-quality code for embedded and instruction-level parallel processor architectures, including regular architectures such as superscalars and VLIW, as well as irregular architectures, such as clustered VLIW and DSP processors. Even though today’s DSP processors are more compiler friendly than a decade ago or than today’s network ...
متن کاملA stochastic model for project selection and scheduling problem
Resource limitation in zero time may cause to some profitable projects not to be selected in project selection problem, thus simultaneous project portfolio selection and scheduling problem has received significant attention. In this study, budget, investment costs and earnings are considered to be stochastic. The objectives are maximizing net present values of selected projects and minimizing v...
متن کاملA Project Scheduling Method Based on Fuzzy Theory
In this paper a new method based on fuzzy theory is developed to solve the project scheduling problem under fuzzy environment. Assuming that the duration of activities are trapezoidal fuzzy numbers (TFN), in this method we compute several project characteristics such as earliest times, latest times, and, slack times in term of TFN. In this method, we introduce a new approach which we call modif...
متن کاملScheduling of undergraduate thesis examination: a case study in Industrial Engineering Department of Universitas Sebelas Maret
Undergraduate thesis examination in Industrial Engineering Department of Universitas Sebelas Maret conducted through two stages, namely intermediate and final examination. Currently, the scheduling process of such examinations is done by the undergraduate thesis coordinator manually without certain systematic method or approach. In this paper, we develop an optimization model for the examinatio...
متن کامل